//引入axios，进行二次封装
import axios from 'axios';
import Vue from 'vue'

//引入进度条
import nprogress from 'nprogress';
import 'nprogress/nprogress.css'
import {getToken} from "@/plugins/token";

//引入中心仓库
// import store from '@/store';

//二次封装axios
const requests=axios.create({
    //设置基础路径
    baseURL:'/api',
    //设置访问超时时间
    timeout:5000
})

//创建请求拦截器
requests.interceptors.request.use((config)=>{
    //返回一个config配置对象，包含一个重要参数：header请求头

    //进度条开始
    nprogress.start();

    return config;
})
//创建响应拦截器
requests.interceptors.response.use((res)=>{
    //成功的回调函数，当访问数据响应时，可以响应拦截，进行一些业务处理

    //进度条结束
    nprogress.done();

    return res.data;
},()=>{
    if(getToken()==undefined){
        Vue.prototype.$message({
            type:'warning',
            message:'未登录',
            duration:1000
        })
        nprogress.done();
    }
    return Promise.reject(new Error('Fail'));
})

export default requests;


